package common

import (
	"encoding/csv"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"os"
)

func SaveToJSON(filename string, v interface{}) error {
	//	写入 JSON
	b, err := json.MarshalIndent(v, "", "  ")
	if err != nil {
		return err
	}

	return ioutil.WriteFile(filename, b, 0644)
}

func LoadFromJSON(filename string, v interface{}) error {
	//	读取 JSON
	b, err := ioutil.ReadFile(filename)
	if err != nil {
		return fmt.Errorf("无法加载JSON文件'%s'。 '%s'", filename, err)
	}
	//	解析 JSON
	return json.Unmarshal(b, v)
}

func SaveToCSV(filename string, records [][]string) error {
	f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE, 0755)
	if err != nil {
		return err
	}
	w := csv.NewWriter(f)
	return w.WriteAll(records)
}
